package com.jueling.culture.service;


import com.jueling.culture.core.Service;
import com.jueling.culture.dto.res.BackstageUserDto;
import com.jueling.culture.dto.res.EditBackstageUserDto;
import com.jueling.culture.model.UserAuthority;
import com.jueling.culture.model.UserInfo;

import java.util.List;

/**
 * @author by linp
 * @date 2022/02/18
 */
public interface UserInfoService extends Service<UserInfo> {

    /**
     * 查询用户列表
     * @param keywords
     * @return
     */
    List<UserInfo> getUserList(String keywords);

    /**
     * 新增用户
     * @param backstageUserDto
     */
    void addBackstageUser(BackstageUserDto backstageUserDto);

    /**
     * 删除用户
     * @param id
     */
    void deleteByUserId(String id);

    /**
     * 编辑用户
     * @param id
     * @param editBackstageUserDto
     */
    void updateBackstageUser(String id, EditBackstageUserDto editBackstageUserDto);

    /**
     * 用户登录
     * @param username
     * @param md5Password
     * @return
     */
    UserInfo login(String username, String md5Password);

    /**
     * 判断用户是否存在
     * @param userName
     * @return
     */
    boolean checkUser(String userName);

    /**
     * 根据ID查询用户的权限
     * @param userId
     * @return
     */
    List<UserAuthority> getUserAuthorityList(String userId);

    /**
     * 重置用户的密码
     * @param userId
     * @param password
     */
    void resetPassword(String userId, String password);

}
